]> dgit.raspbian.org Git - gnome-shell.git/log
gnome-shell.git
6 years agojs: Remove unused files from resources
Florian Müllner [Sat, 7 Mar 2020 13:18:08 +0000 (14:18 +0100)]
js: Remove unused files from resources

fileUtils hasn't used Params since 2013, but was still importing it
until commit a1534dab0264 ...

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1077

6 years agoUpdate Japanese translation
sicklylife [Mon, 9 Mar 2020 12:47:10 +0000 (12:47 +0000)]
Update Japanese translation

6 years agoUpdated Czech translation
Marek Černocký [Mon, 9 Mar 2020 12:45:33 +0000 (13:45 +0100)]
Updated Czech translation

6 years agoUpdate Japanese translation
sicklylife [Mon, 9 Mar 2020 12:35:24 +0000 (12:35 +0000)]
Update Japanese translation

6 years agost/password-entry: Fix peek icon leak
Sebastian Keller [Sun, 8 Mar 2020 22:51:55 +0000 (23:51 +0100)]
st/password-entry: Fix peek icon leak

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1078

6 years agoUpdate Catalan translation
Jordi Mas [Sun, 8 Mar 2020 20:56:30 +0000 (21:56 +0100)]
Update Catalan translation

6 years agoUpdate Serbian translation
Марко Костић [Sun, 8 Mar 2020 20:21:47 +0000 (20:21 +0000)]
Update Serbian translation

6 years agoextensionPrefs: Stop escaping extension name
Florian Müllner [Tue, 3 Mar 2020 23:26:04 +0000 (00:26 +0100)]
extensionPrefs: Stop escaping extension name

The corresponding label no longer uses markup, so we can and should use
the unescaped name.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2305

6 years agoappDisplay: Reload folder views on installed app changes
Jonas Dreßler [Mon, 17 Feb 2020 15:21:58 +0000 (16:21 +0100)]
appDisplay: Reload folder views on installed app changes

Since the FolderViews are not connected to the "installed-changed"
signal, we need to reload their apps by calling _redisplay() when an app
is removed or installed. We can't connect to "installed-changed" inside
FolderView because we need to ensure _redisplay() of the FolderView is
called before AppView tries to access the apps of the folder inside
_refilterApps(). So reload the FolderViews inside AllViews _redisplay()
implementation to ensure everything is up to date before accessing the
apps of the folder.

Since the "apps-changed" signal of FolderIcon now indirectly triggers a
_redisplay() of the FolderViews, the 'changed' handler of FolderView is
now redundant and can be removed. Because of this, we also need to move
the emission of the "apps-changed" signal to the start of the signal
handler to make sure the view is updated before we try to access items
of the view.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1901

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1011

6 years agoappDisplay: Disconnect folder "changed" signal when actors are destroyed
Jonas Dreßler [Mon, 17 Feb 2020 14:40:55 +0000 (15:40 +0100)]
appDisplay: Disconnect folder "changed" signal when actors are destroyed

We should disconnect the folders "changed" signal from the folder in
case the FolderView or FolderIcon is destroyed. While at it, also remove
the unused this._spaceReadySignalId of FolderIcon.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1011

6 years agoappDisplay: Implement an addApp() method for FolderViews
Jonas Dreßler [Mon, 17 Feb 2020 15:56:10 +0000 (16:56 +0100)]
appDisplay: Implement an addApp() method for FolderViews

Similar to removeApp(), implement addApp() in FolderView to make adding
folders to views a bit more obvious.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1011

6 years agoappDisplay: Rename _redisplay() functions unrelated to BaseAppView
Jonas Dreßler [Mon, 17 Feb 2020 14:35:49 +0000 (15:35 +0100)]
appDisplay: Rename _redisplay() functions unrelated to BaseAppView

The _redisplay() function is usally used for subclasses of BaseAppView
which want to implement their own _redisplay() function, having that
function name in two classes which have nothing to do with BaseAppView
can be quite confusing. Make those names less confusing and call the
functions  _sync() and _rebuildMenu() instead.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1011

6 years agoappDisplay: Add back background color for folder icons
Jonas Dreßler [Sun, 16 Feb 2020 20:56:27 +0000 (21:56 +0100)]
appDisplay: Add back background color for folder icons

During this cycle the background color of the folder icons was removed
(probably fallout from the theme refactor), this was not intended
design-wise, so add it back.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1011

6 years agoappDisplay: Properly hide overlay scrollbar in folders
Jonas Dreßler [Sun, 16 Feb 2020 20:55:39 +0000 (21:55 +0100)]
appDisplay: Properly hide overlay scrollbar in folders

Use the scroll-view policy ST_POLICY_EXTERNAL to hide the scrollbar
instead of setting its css properties to hidden, where it can still be
clicked but isn't visible.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1011

6 years agoappDisplay: Remove the top padding from folder app grid
Jonas Dreßler [Mon, 17 Feb 2020 13:21:51 +0000 (14:21 +0100)]
appDisplay: Remove the top padding from folder app grid

There already is a bottom padding defined for the name container of the
folder, so remove the top padding of the appGrid and make sure we can
show a few more icons inside the folder.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1011

6 years agoappDisplay: Take the viewBox into account for the contentBox of folders
Jonas Dreßler [Mon, 17 Feb 2020 13:12:47 +0000 (14:12 +0100)]
appDisplay: Take the viewBox into account for the contentBox of folders

The viewBox has a border applied, so when we call adaptToSize using only
the content box of the container, the width of the border is not removed
from the content box and the grid will be allocated less space than what
we told it before using adaptToSize.

Fix that by adjusting the content box for the size of the viewBox, too.
This makes sure the correct amount of columns can be shown inside a
folder, since right now we only show 3 colums even though 4 would fit.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1011

6 years agobuild: Fix some harmless compiler warnings
Florian Müllner [Mon, 2 Mar 2020 17:16:25 +0000 (18:16 +0100)]
build: Fix some harmless compiler warnings

Some (newer?) GCC versions complain when a g_auto variable isn't
initialized when declared, even when the initialization is guaranteed
to happen before the variable is used or goes out of scope.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2298

6 years agoBump extensions-tool version as well
Florian Müllner [Sun, 8 Mar 2020 00:21:49 +0000 (01:21 +0100)]
Bump extensions-tool version as well

6 years agoBump version to 3.36.0
Florian Müllner [Sat, 7 Mar 2020 21:47:10 +0000 (22:47 +0100)]
Bump version to 3.36.0

Update NEWS.

6 years agoUpdate Dutch translation
Nathan Follens [Sat, 7 Mar 2020 21:50:08 +0000 (21:50 +0000)]
Update Dutch translation

6 years agoslider: Include handle border radius when calculating center offset
Jonas Dreßler [Sun, 1 Mar 2020 13:01:14 +0000 (14:01 +0100)]
slider: Include handle border radius when calculating center offset

Since 38da479ee we correctly ceil the non-integer radius of the slider
handle when calculating the offset for drawing the circle. Since the
handle also has a border with a width of 1px by default, we should also
factor that in when calculating the offset.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/1569

6 years agoTheme: colorize .folder-namel-label
ub [Tue, 3 Mar 2020 11:47:21 +0000 (11:47 +0000)]
Theme: colorize .folder-namel-label

- so it receives the correct color, independent from the theme $variant (light/dark)

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1059

6 years agolocation: Update desktop file name for privacy settings
Sebastian Keller [Wed, 4 Mar 2020 22:24:18 +0000 (23:24 +0100)]
location: Update desktop file name for privacy settings

The location settings have been moved to their own panel with a
different desktop file:
https://gitlab.gnome.org/GNOME/gnome-control-center/-/commit/f92f6f5c

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/2316

6 years agomain: Get the theme resource name from sessionMode
Marco Trevisan (Treviño) [Tue, 3 Mar 2020 09:05:54 +0000 (10:05 +0100)]
main: Get the theme resource name from sessionMode

Along the lines of `styleSheetName`, a session mode may want to provide its
own gresource file, so make this possible via a `themeResourceName` session
mode parameter, defaulted to gnome-shell-theme.gresource

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1063

6 years agoshellDBus: Add new OpenExtensionPrefs method
Florian Müllner [Thu, 5 Mar 2020 01:00:57 +0000 (02:00 +0100)]
shellDBus: Add new OpenExtensionPrefs method

Unlike any other methods in the Extensions API, LaunchExtensionPrefs()
opens what appears to be an application dialog, except that it is
really a separate application that the caller has no control over.

In order to address that, add a new OpenExtensionPrefs() method that
takes additional parameters (modelled after the desktop portal APIs)
that will make it possible to improve the behavior in the future.

The new parameters are ignored for now, but pushing the API out now
will allow us to fill in the functionality post the .0 release.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1074

6 years agoshellDBus: Add UserExtensionsEnabled property
Florian Müllner [Thu, 5 Mar 2020 17:15:37 +0000 (18:15 +0100)]
shellDBus: Add UserExtensionsEnabled property

The 'disable-user-extensions' GSettings key is the last extensions-related
setting that isn't exposed over D-Bus, and therefore requires consumers
to access the GSettings directly.

Expose the setting as UserExtensionsEnabled readwrite property in the
org.gnome.Shell.Extensions interface to allow consumers to manage
extensions purely via D-Bus.

The 'disable-user-extensions' setting is the last extension-related
bit from the org.gnome.shell GSettings schema that is not exposed
via D-Bus.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1074

6 years agoibusManager: Ensure to spawn --xim on non-wayland sessions
Carlos Garnacho [Wed, 4 Mar 2020 16:52:27 +0000 (17:52 +0100)]
ibusManager: Ensure to spawn --xim on non-wayland sessions

This (mistakenly) now only depends on signals triggered on Wayland
sessions. Hardcoding the XIM support on X11 sessions will make input
in some clients work again.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/issues/1690
6 years agowindowManager: X11 can work without gsd-xsettings
Olivier Fourdan [Tue, 3 Mar 2020 12:14:23 +0000 (13:14 +0100)]
windowManager: X11 can work without gsd-xsettings

Currently, a failure to start the Systemd unit `gsd-xsettings.target`
would be considered a failure to start Xwayland.

That means that if `gsd-xsettings.target` fails to start for whatever
reason, no X11 client can be used on Wayland.

However, XSettings is by no mean mandatory for X11 clients and many
legacy X11 clients do not implement XSettings. Those who do always have
a fallback path and therefore can still work without XSettings.

Make a failure to start the Systemd unit `gsd-xsettings.target` non
blocking for Xwayland, and just log a warning message.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1065

6 years agoshell/tray-manager: Delay managing screen if necessary
Florian Müllner [Wed, 4 Mar 2020 13:27:54 +0000 (14:27 +0100)]
shell/tray-manager: Delay managing screen if necessary

Now that Xwayland startup is asynchronous, the function may be called
before X11 is available, resulting in a crash.

Fix this by only managing the tray immediately if we already have an
X11 display, and wait for it to be set up otherwise.

Likewise, unmanage the screen when X11 becomes unavailable.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2308

6 years agoshell/tray-manager: Allow to unmanage screen
Florian Müllner [Wed, 4 Mar 2020 22:26:15 +0000 (23:26 +0100)]
shell/tray-manager: Allow to unmanage screen

Since support for legacy status icons is implemented by extensions
nowadays, they need to undo the call to manage_screen() when they
are disabled.

Right now that means bypassing garbage collection with an explicit
call to run_dispose() on the Shell.TrayManager. That works, but is
rather ugly.

An explicit unmanage_screen() method is a nicer option, and will be
useful to us as well to deal with X11 going away (once Xwayland
crashes don't bring down the entire session).

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2308

6 years agoshell/tray-manager: Only create resources when needed
Florian Müllner [Wed, 4 Mar 2020 22:12:29 +0000 (23:12 +0100)]
shell/tray-manager: Only create resources when needed

NaTrayManager in particular is deeply tied to X11. We currently assume
that X11 support is always available, but that is already not true
anymore - Xwayland startup is now asynchronous.

It will be even less true once we handle Xwayland crashes gracefully.

Start addressing that by not creating the corresponding resources once
and assume they exist for the lifetime of Shell.TrayManager, but make
sure they exist when actually needed.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2308

6 years agoUpdated Czech translation
Marek Černocký [Fri, 6 Mar 2020 17:25:26 +0000 (18:25 +0100)]
Updated Czech translation

6 years agoUpdate Japanese translation
sicklylife [Wed, 4 Mar 2020 21:53:07 +0000 (21:53 +0000)]
Update Japanese translation

6 years agoUpdate Ukrainian translation
Daniel Korostil [Wed, 4 Mar 2020 16:47:03 +0000 (16:47 +0000)]
Update Ukrainian translation

6 years agoUpdate Italian translation
Milo Casagrande [Tue, 3 Mar 2020 08:09:27 +0000 (08:09 +0000)]
Update Italian translation

6 years agoenvironment: Fix date conversion
Florian Müllner [Mon, 2 Mar 2020 12:46:04 +0000 (13:46 +0100)]
environment: Fix date conversion

This is a regression from commit 06b690ff21204:

GLib.DateTime.new() expects the full four-digit year, so passing
the abbreviated year from Date() will result in a bogus datetime.

Today is *not* Saturday March 2nd, 120 ...

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1061

6 years agoUpdated Lithuanian translation
Aurimas Černius [Sun, 1 Mar 2020 18:41:32 +0000 (20:41 +0200)]
Updated Lithuanian translation

6 years agoUpdate Croatian translation
Goran Vidović [Sun, 1 Mar 2020 15:47:17 +0000 (15:47 +0000)]
Update Croatian translation

6 years agoUpdate Punjabi translation
Aman Alam [Sun, 1 Mar 2020 09:18:00 +0000 (09:18 +0000)]
Update Punjabi translation

6 years agoBump version to 3.35.92
Florian Müllner [Sun, 1 Mar 2020 01:09:03 +0000 (02:09 +0100)]
Bump version to 3.35.92

Update NEWS.

6 years agounlockDialog: Transition switch-user button with prompt
Florian Müllner [Wed, 19 Feb 2020 13:30:05 +0000 (14:30 +0100)]
unlockDialog: Transition switch-user button with prompt

We ended up always showing the switch-user button on the lock screen,
as showing and hiding it with the prompt was too visually distracting.

But now that we have a fancy transition in place, we can easily extend
it to the switch-user button as well.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1029

6 years agounlockDialog: Simplify sensitivity handling
Florian Müllner [Wed, 19 Feb 2020 13:24:51 +0000 (14:24 +0100)]
unlockDialog: Simplify sensitivity handling

We only call _updateSensitivity() to make elements sensitive, and
nothing ever touches the sensitivity of the switch-user button; so
just call the corresponding authPrompt method directly, which is the
only bit that has an actual effect.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1029

6 years agowindowManager: Fix shutdown signal connection
Carlos Garnacho [Sat, 29 Feb 2020 22:42:29 +0000 (23:42 +0100)]
windowManager: Fix shutdown signal connection

This signal relied on mutter changes that were withdrawn
and it was unintended to use here. Restore the usage of
good old MetaDisplay::x11-display-closing.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1056

6 years agowindowManager: Implement MetaDisplay::init-xserver hook
Carlos Garnacho [Thu, 14 Nov 2019 22:56:42 +0000 (23:56 +0100)]
windowManager: Implement MetaDisplay::init-xserver hook

We do spawn gsd-xsettings, and watch its name before notifying on the
given task, so the mutter bits can proceed with X11 startup.

One notable change is that we only start gsd-xsettings, instead of the
generic gnome-session-x11-services target. We do so as we have to wait
on a dbus name to appear in order to deem the initialization done, and
making it all depend on gsd-xsettings seems tidier.

Less notably, we also use ::shutdown-xserver to shutdown the related
services. Its major benefit is that it'd allow us to ensure the olderly
shutdown of those services, but it's unused at the moment.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/836

6 years agoibusManager: Use setup X11 display for ibus-x11
Carlos Garnacho [Sat, 29 Feb 2020 17:43:28 +0000 (18:43 +0100)]
ibusManager: Use setup X11 display for ibus-x11

(re)spawning ibus to get ibus-x11 will be part atm of Xwayland
initialization process. For it to be set up before the client
it needs using the GNOME_SETUP_DISPLAY.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/836

6 years agoUpdate Japanese translation
sicklylife [Sat, 29 Feb 2020 16:06:10 +0000 (16:06 +0000)]
Update Japanese translation

6 years agoUpdate Japanese translation
sicklylife [Sat, 29 Feb 2020 15:54:06 +0000 (15:54 +0000)]
Update Japanese translation

6 years agojs/ui: Subscribe touchpad gesture handlers to only touchpad events
Daniel van Vugt [Fri, 10 Jan 2020 07:44:35 +0000 (15:44 +0800)]
js/ui: Subscribe touchpad gesture handlers to only touchpad events

The touchpad gesture handlers were receiving all events, all the time.
This meant that even mouse movements were getting translated into
JavaScript calls and then discarded by the handlers, which wasted CPU.

Now we subscribe the touchpad gesture handlers to only touchpad events.

Prequisite: https://gitlab.gnome.org/GNOME/mutter/merge_requests/1000

Closes: https://gitlab.gnome.org/GNOME/mutter/issues/283
https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/925

6 years agoUpdate Polish translation
Piotr Drąg [Sat, 29 Feb 2020 12:09:46 +0000 (13:09 +0100)]
Update Polish translation

6 years agoUpdate Persian translation
Danial Behzadi [Sat, 29 Feb 2020 02:24:13 +0000 (02:24 +0000)]
Update Persian translation

6 years agowindowManager: Show window resizing clone on "size-changed"
Jonas Dreßler [Fri, 28 Feb 2020 15:43:48 +0000 (16:43 +0100)]
windowManager: Show window resizing clone on "size-changed"

When a window is being resized by the compositor, with Wayland the
compositor first asks the window to change its size and emits the
"size-change" signal, and then emits the "size-changed" signal after
the window acknowledges the new size. To show a fancy resize animation,
gnome-shell creates a "screenshot" of the resizing window on the
"size-change" signal, and later animates that "screenshot" to the new
window size on the "size-changed" signal.

Now if a client is not responding to our requests asking it to change
its size, we get a "size-change" signal and start showing the
window-clone, but never a "size-changed" signal, animating and hiding
the clone again. This causes a so called "ghost window" that is shown
above everything else and never disappears again.

To fix that, start showing the window clone once we get the
"size-changed" signal instead of the "size-change" signal. This makes
sure the window actually updates its size and the clone is going to be
hidden again.

Fixes https://gitlab.gnome.org/GNOME/mutter/issues/1078

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1055

6 years agoUpdated Danish translation
Alan Mortensen [Fri, 28 Feb 2020 13:01:26 +0000 (14:01 +0100)]
Updated Danish translation

6 years agoUpdate Korean translation
Changwoo Ryu [Fri, 28 Feb 2020 09:00:39 +0000 (09:00 +0000)]
Update Korean translation

6 years agoUpdate Korean translation
Changwoo Ryu [Fri, 28 Feb 2020 07:19:46 +0000 (07:19 +0000)]
Update Korean translation

6 years agoUpdate Indonesian translation
Kukuh Syafaat [Fri, 28 Feb 2020 02:12:33 +0000 (02:12 +0000)]
Update Indonesian translation

6 years agoenvironment: reduce calls to g_time_zone_new_local()
Florian Müllner [Thu, 27 Feb 2020 21:46:44 +0000 (13:46 -0800)]
environment: reduce calls to g_time_zone_new_local()

Creating a new GTimeZone for the local timezone can be quite expensive if
done repeatedly. It requires an open(), mmap(), and parsing of
/etc/localtime.

This patch was provided by Florian, and I've tested it as far back as
3.28.4 to ensure that we are really reducing the number of open() calls
on the compositor thread.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1051

Signed-off-by: Christian Hergert <chergert@redhat.com>
6 years agoshell: fix typo in comment
Christian Hergert [Thu, 27 Feb 2020 02:59:31 +0000 (18:59 -0800)]
shell: fix typo in comment

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1050

6 years agoglobal: force fsync() to worker thread when saving state
Christian Hergert [Wed, 26 Feb 2020 22:46:20 +0000 (14:46 -0800)]
global: force fsync() to worker thread when saving state

The g_file_replace_contents_async() API can potentially call fsync() from
the thread calling into it upon completion. This can have disasterous
effects when run from the compositor main thread such as complete stalls.

This is a followup to 86a00b6872375a266449beee1ea6d5e94f1ebbcb which
assumed (like the rest of us) that the fsync() would be performed on the
thread that was doing the I/O operations.

You can verify this with an strace -e fsync and cause terminal to display
a command completed notification (eg: from a backdrop window).

This also fixes a lifecycle bug for the variant, as
g_file_replace_contents_async() does not copy the data during the operation
as that is the responsibility of the caller. Instead, we just use a GBytes
variant and reference the variant there.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1050

6 years agoci: Prohibit template strings in translatable files
Florian Müllner [Tue, 18 Feb 2020 16:08:23 +0000 (17:08 +0100)]
ci: Prohibit template strings in translatable files

Sadly, xgettext's dealing with template strings is abysimal, so we
had to stop using them in files with translatable strings.

Make sure we don't accidentally sneak in template strings again(*)
and enforce that rule in a CI job.

(*) easy "mistake", considering how much nicer they are than
    String.prototype.format()

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1016

6 years agoci: Check that files with translatable strings are listed in POTFILES
Florian Müllner [Tue, 18 Feb 2020 18:05:47 +0000 (19:05 +0100)]
ci: Check that files with translatable strings are listed in POTFILES

Also known as "Piotr Drąg Bot".

We will soon make sure that files processed by xgettext don't use template
strings. To make that check as adequate as possible, ensure that no source
code files are missing from POTFILES.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1016

6 years agocalendar-server: Remove unused defines
Florian Müllner [Tue, 18 Feb 2020 16:22:56 +0000 (17:22 +0100)]
calendar-server: Remove unused defines

The file doesn't contain any translatable strings, so the i18n
macros are unused.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1016

6 years agoaltTab: Don't fade out thumbnails on destroy
Jonas Dreßler [Mon, 27 Jan 2020 22:42:28 +0000 (23:42 +0100)]
altTab: Don't fade out thumbnails on destroy

The thumbnails actor `this._thumbnails` has already been destroyed when
calling `_destroyThumbnails()` from the `destroy` signal handler because
it is a child actor of the AppSwitcherPopup. So stop destroying the
thumbnails separately (fading them out inside a destroy handler wouldn't
make sense anyway).

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/167

6 years agoswitcherPopup: Use correct scroll-direction property
Jonas Dreßler [Wed, 15 Jan 2020 16:04:07 +0000 (17:04 +0100)]
switcherPopup: Use correct scroll-direction property

The correct property for the scroll-direction with scrolling events is
`direction`, no `scroll_direction`. This fixes scrolling in the alt-tab
popup, which broke with the actorization changes.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/167

6 years agoswitcherPopup: Always return true when the popup finished early
Jonas Dreßler [Thu, 6 Dec 2018 17:05:39 +0000 (18:05 +0100)]
switcherPopup: Always return true when the popup finished early

When the switcherPopup was initiated successfully, we return true,
otherwise the WindowManager will try to destroy it. Since an early
release of the keystroke will also switch to another application and
close the switcher just fine, we should return true to indicate success
here.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/167

6 years agoswitcherPopup: Lookup index of items when hovering or clicking
Jonas Dreßler [Wed, 15 Jan 2020 15:19:41 +0000 (16:19 +0100)]
switcherPopup: Lookup index of items when hovering or clicking

Right now the index that gets selected on click and motion events is set
when connecting the event inside the addItem function. If items are
added or removed (for example when an application is closed by pressing
"q"), this index isn't valid anymore and has to be updated.

To fix this, use the items themselves instead of the index as arguments
for the event handlers and lookup the index of the item inside the event
handler.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/167

6 years agoswitcherPopup: Implement functions to add and remove accessible states
Jonas Dreßler [Thu, 26 Apr 2018 09:19:40 +0000 (11:19 +0200)]
switcherPopup: Implement functions to add and remove accessible states

Set the accessible states of the switcherList items by calling a
function instead of manipulating class-internal variables from outside
the class, which is considered bad practice.

The check whether the item at `_selectedIndex` exists can also be
removed since we always select a new index after an item was removed
(i.e. an app was closed) and destroy the alt-tab switcher right away if
no more items exist (see `SwitcherPopup._itemRemovedHandler`).

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/167

6 years agoswitcherPopup: Select correct item after removal of item
Jonas Dreßler [Wed, 25 Apr 2018 22:32:57 +0000 (00:32 +0200)]
switcherPopup: Select correct item after removal of item

If an item was removed, make sure the selected item is still selected or
select the last one if the selected item was removed.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/167

6 years agoswitcherPopup: Disable hover on scrolling events
Jonas Dreßler [Sun, 6 May 2018 20:49:52 +0000 (22:49 +0200)]
switcherPopup: Disable hover on scrolling events

Just like with keyboard events, disable hover on scrolling events. Mouse
movements should not mess up the selection while scrolling.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/167

6 years agoswitcherPopup: Swap Math.max and Math.min in _scrollToLeft
Jonas Dreßler [Wed, 25 Apr 2018 21:56:29 +0000 (23:56 +0200)]
switcherPopup: Swap Math.max and Math.min in _scrollToLeft

Limit the minimum and maximum value to scroll to inside the box to 0 and
the upper limit, for some reason this was done right in _scrollToRight,
but not in _scrollToLeft.

This fixes the behavior of scrolling to the left: Before, scrolling one
item to the left moved the view to the first element of the list (this
can make the selected element invisible in large lists). Instead, scroll
one item to the left, just like scrolling to the right works.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/167

6 years agoswitcherPopup: Use local variable for index in scrolling functions
Jonas Dreßler [Wed, 25 Apr 2018 21:24:05 +0000 (23:24 +0200)]
switcherPopup: Use local variable for index in scrolling functions

Make sure the index that's being scrolled to doesn't change while the
scrolling animation is running by using an argument instead of the
this._highlighed class scope variable.

This fixes wrongly shown arrows when selecting new elements faster than
the scrolling animation takes for one index. The check run to disable
the arrow might be checking against a newer index than the one at the
start of the animation which results in the arrow not getting hidden
even if no more scrolling is possible.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/167

6 years agoswitcherPopup: Use this._highlighted to check for reentrancy
Jonas Dreßler [Wed, 25 Apr 2018 20:14:57 +0000 (22:14 +0200)]
switcherPopup: Use this._highlighted to check for reentrancy

Since this._highlighted is always set to the currently highlighted
index, there's no need to save the index to a separate variable. This
obviously depends on getting the new item highlighted as a result of the
item-entered event.

This fixes bugs in situations where the highlighted element changes
after an event that is not calling _onItemEnter, for example after
scrolling or pressing a key. In those cases the _currentItemEntered
variable wouldn't be updated and the old item couldn't be entered
anymore without entering another one before.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/167

6 years agoUpdate Persian translation
Danial Behzadi [Wed, 26 Feb 2020 21:06:04 +0000 (21:06 +0000)]
Update Persian translation

6 years agoUpdate Catalan translation
Jordi Mas [Wed, 26 Feb 2020 20:58:52 +0000 (21:58 +0100)]
Update Catalan translation

6 years agoUpdate Galician translation
Fran Dieguez [Wed, 26 Feb 2020 20:55:17 +0000 (20:55 +0000)]
Update Galician translation

6 years agologinDialog: Do not expand "Not listed" button
Florian Müllner [Tue, 25 Feb 2020 17:15:49 +0000 (18:15 +0100)]
loginDialog: Do not expand "Not listed" button

Visually the button is just an interactive label, so having the
interactive area extend to the empty space next to the label
is surprising.

Instead, left-align the whole button rather than just the label
inside, so the clickable area corresponds to the visible one.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1046

6 years agompris: Disallow media section on login screen
Florian Müllner [Thu, 20 Feb 2020 15:40:04 +0000 (16:40 +0100)]
mpris: Disallow media section on login screen

The 'gdm' user is not going to run a media player, so there is no
point in allowing the corresponding section on the login screen.

All other sections are already disabled, so this is the only reason why
we end up with the message list instead of only showing the calendar.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2241

6 years agoRevert "js/ui: Use Clutter.OffscreenRedirect.ON_IDLE"
Daniel van Vugt [Wed, 26 Feb 2020 03:53:40 +0000 (11:53 +0800)]
Revert "js/ui: Use Clutter.OffscreenRedirect.ON_IDLE"

This reverts commit c0c027c608d0aa1c547a2a82bd3ce6b84bb83b83. Because for
some reason animating external opacity and position is still incurring
internal repaints, which disables offscreening and makes fading of
overlapping actors look wrong. `ON_IDLE` should be fixed in mutter before
it is used (in boxpointer at least) again.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/2270

6 years agoci: Adjust URL check
Florian Müllner [Tue, 25 Feb 2020 23:18:17 +0000 (00:18 +0100)]
ci: Adjust URL check

While the old merge request URLs still work, gitlab recently started
including an additional /- for merge requests.

Adjust the regex to account for that, so that simply copying the URL
from gitlab works again.

https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1048

6 years agooverview: Hide the overview on session mode hasOverview changes
Jonas Dreßler [Mon, 24 Feb 2020 10:19:28 +0000 (11:19 +0100)]
overview: Hide the overview on session mode hasOverview changes

If the sessionMode does not allow to show the overview, we should also
hide an already visible overview.

This fixes a bug where, if the lockscreen was shown while the overview
was visible, the Ctrl+Alt+Tab popup would allow navigating inside the
overview because the overview actor is still mapped.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1043

6 years agopanel: Only consider St.Widgets for corner buttons
Philippe Troin [Thu, 9 May 2019 17:47:23 +0000 (10:47 -0700)]
panel: Only consider St.Widgets for corner buttons

We cannot syncronize styles with plain Clutter.Actors, so don't return
them when looking for corner buttons.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1047

6 years agoenvironment: Handle reversed transition with 0 duration
Florian Müllner [Sat, 22 Feb 2020 15:35:32 +0000 (16:35 +0100)]
environment: Handle reversed transition with 0 duration

If a transition is reversed, the final property values will be the
same as before the transition. However this currently only works
correctly when we actually use a transition; to fix this with a
duration of 0, simply skip the set() call when the transition is
reversed.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1042

6 years agosass: use relative values for user-icon
Sam Hewitt [Tue, 25 Feb 2020 16:36:25 +0000 (16:36 +0000)]
sass: use relative values for user-icon

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2242

6 years agotheme: Fix horizontal default user widget
Florian Müllner [Thu, 20 Feb 2020 15:10:36 +0000 (16:10 +0100)]
theme: Fix horizontal default user widget

Commit 6c6c89c63470b5 added a pill around the default avatar, but
assumed the sizes from the vertical widget used on the lock screen.

In order to fix the horizontal widget on the login screen, move the
size-specific bits to the corresponding .horizontal and .vertical
sections, and half the sizes for the former (which corelates with
the icon sizes).

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2242

6 years agodateMenu: Sync initial state of the message indicator
Jonas Dreßler [Thu, 20 Feb 2020 18:57:20 +0000 (19:57 +0100)]
dateMenu: Sync initial state of the message indicator

While the unread messages indicator is updated when starting a new
session because we call _onSourceAdded() on existing sources, we should
also update the do-not-disturb setting which might still be enabled.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1037

6 years agodateMenu: Remove an unnecessary change for RTL layouts
Jonas Dreßler [Thu, 20 Feb 2020 19:11:16 +0000 (20:11 +0100)]
dateMenu: Remove an unnecessary change for RTL layouts

Calculating 1 - 0.5 is rather useless if the value was 0.5 before...

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1037

6 years agotheme: Hide panel underline under the do not disturb icon
Jonas Dreßler [Thu, 20 Feb 2020 19:10:54 +0000 (20:10 +0100)]
theme: Hide panel underline under the do not disturb icon

Hide the focused/active indicator of the panel underneath the
do-not-disturb icon.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1037

6 years agotheme/message-list: Increase spacing for do-not-disturb enable-button
Jonas Dreßler [Thu, 20 Feb 2020 16:26:17 +0000 (17:26 +0100)]
theme/message-list: Increase spacing for do-not-disturb enable-button

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/1037

6 years agotheme: sync toggle-off-dark with gtk
Jakub Steiner [Tue, 25 Feb 2020 12:47:01 +0000 (13:47 +0100)]
theme: sync toggle-off-dark with gtk

- improve contrast

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/2157

6 years agoUpdate Hungarian translation
Balázs Úr [Tue, 25 Feb 2020 06:26:27 +0000 (06:26 +0000)]
Update Hungarian translation

6 years agost: implement ClutterActorClass.has_accessible()
Christian Hergert [Sun, 23 Feb 2020 22:08:41 +0000 (14:08 -0800)]
st: implement ClutterActorClass.has_accessible()

Implement ClutterActorClass.has_accessible() to ensure that CallyActor does not
recreate accessibles during the removal/destruction of an actor.  This relies
on GNOME/mutter!1083 for the ClutterActorClass.has_accessible virtual function.

Running GNOME Shell for about 30 seconds results in a difference between
the two runs.

Before:

    ALLOCATED      TOTAL    FUNCTION
[   52.2 KiB] [   0.05%]    cally_actor_real_remove_actor
[   36.3 KiB] [   0.04%]      st_widget_get_accessible
[    9.8 KiB] [   0.01%]      atk_gobject_accessible_for_object
[    3.2 KiB] [   0.00%]      g_signal_emit_by_name
[    2.9 KiB] [   0.00%]      clutter_actor_get_children

After:

    ALLOCATED      TOTAL    FUNCTION
[    1.8 KiB] [   0.00%]    cally_actor_real_remove_actor
[    1.1 KiB] [   0.00%]      clutter_actor_get_children
[  659 bytes] [   0.00%]      g_signal_emit_by_name

Obviously 50KiB isn't a huge savings.

Although fixing things to avoid re-entrancy on destruction can be very useful
from a correctness standpoint.

Fixes https://gitlab.gnome.org/GNOME/gnome-shell/issues/2263

6 years agoUpdated Danish translation
Alan Mortensen [Mon, 24 Feb 2020 21:40:32 +0000 (22:40 +0100)]
Updated Danish translation

6 years agoUpdate Turkish translation
Emin Tufan Çetin [Mon, 24 Feb 2020 15:08:21 +0000 (15:08 +0000)]
Update Turkish translation

6 years agounlockDialog: Set accessible name of icon-only buttons
Florian Müllner [Wed, 19 Feb 2020 17:06:38 +0000 (18:06 +0100)]
unlockDialog: Set accessible name of icon-only buttons

We turned both the auth prompt's cancel button and the switch user
button into icon buttons now, which means they are completely cryptic
when using a screen reader.

Just use the previously used labels as accessible names, which has the
nice side effect of lowering the impact of the string freeze break.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2210

6 years agoauthPrompt: Don't focus hidden cancelButton
Florian Müllner [Wed, 19 Feb 2020 16:32:22 +0000 (17:32 +0100)]
authPrompt: Don't focus hidden cancelButton

The button is hidden on the lock screen, so it shouldn't be allowed to
activate it, be it via click or keyboard. The latter is still possible
by keynaving to the button and hitting space/enter. Fix that by making
the button unfocusable when we make it unreactive.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2210

6 years agounlockDialog: Turn mainBox into an St.Widget
Florian Müllner [Wed, 19 Feb 2020 16:15:48 +0000 (17:15 +0100)]
unlockDialog: Turn mainBox into an St.Widget

This is the container that contains the elements that are interesting
for keynav, so it must be aware of focus-chain and -navigation.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2210

6 years agounlockDialog: Don't make dialog focusable
Florian Müllner [Wed, 19 Feb 2020 16:20:37 +0000 (17:20 +0100)]
unlockDialog: Don't make dialog focusable

There is little point in focusing the dialog itself, we want keynav
to navigate inside instead and navigate between focusable children.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2210

6 years agoshell/stack: Ignore hidden children for focus navigation
Florian Müllner [Wed, 19 Feb 2020 16:30:15 +0000 (17:30 +0100)]
shell/stack: Ignore hidden children for focus navigation

ShellStack implements custom focus navigation, and will only ever
navigate into its top-most child. That kind of makes sense as long
as that child is actually visible, but not when it is hidden.

Descend into the stack to look for a focusable child instead.

https://gitlab.gnome.org/GNOME/gnome-shell/issues/2210

6 years agomagnifier: Use inhibit-unfocus API to keep wayland focus while hidden
Jonas Dreßler [Mon, 7 Oct 2019 13:02:17 +0000 (15:02 +0200)]
magnifier: Use inhibit-unfocus API to keep wayland focus while hidden

Since commit mutter/a2a8f0cda we force the focus surface of the
meta-wayland-pointer to NULL while the pointer is hidden. This
introduced an issue with the magnifier, where we use
`set_pointer_visible` to hide the real cursor and show our own cursor at
the correct position: Because the meta-wayland-pointer is still used to
communicate with Wayland clients, the UI of the windows will not respond
to mouse movement anymore as soon as the real cursor is hidden.

To fix this, use the newly added clutter_seat_inhibit_unfocus() API to
temporarily disable unsetting the focus-surface while the magnifier is
hiding the system cursor.

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/993

6 years agomagnifier: Use own showSystemCursor() instead of set_pointer_visible()
Jonas Dreßler [Mon, 7 Oct 2019 13:00:19 +0000 (15:00 +0200)]
magnifier: Use own showSystemCursor() instead of set_pointer_visible()

We already have our own function to show the system cursor, use it!

https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/993

6 years agoUpdate British English translation
Bruce Cowan [Sun, 23 Feb 2020 12:50:32 +0000 (12:50 +0000)]
Update British English translation